const { port, processNum } = require('../config.json');
const express = require('express');
const cluster = require('cluster');
const numCPUs = require('os').cpus().length;
const server = require('./server')

if (cluster.isMaster) {
  console.log(`主进程 ${process.pid} 正在运行`);

  // 衍生工作进程。
  for (let i = 0; i < (processNum ? processNum : numCPUs); i++) {
    cluster.fork();
  }

  cluster.on('exit', (worker, code, signal) => {
    console.log(`工作进程 ${worker.process.pid} 已退出`);
  });

  console.log(`listen in ${port}`)
} else {
  // 工作进程可以共享任何 TCP 连接。
  // 在本例子中，共享的是 HTTP 服务器。
  let app = express();
  server(app)
  app.listen(port);
  console.log(`工作进程 ${process.pid} 已启动`);
}

